package exercise;

import java.util.Arrays;

public class Sort {
    public static void main(String[] args) {
        int[] arr = new int[]{1,3,5,2,4,6};
        qsort(0,5,arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void qsort(int l,int r,int[] q){
        if(l >= r) return;
        int x = q[l+r>>1];
        int i = l-1;
        int j = r+1;
        while(i < j){
//            do i++; while (q[i] < x);
//            do j--; while (q[j] > x);
            do i++;while(q[i] < x);
            do j--;while(q[j] > x);
            if(i < j) {
//            if(i < j){
//                int temp = q[i];
                int temp = q[i];
//               q[i] = q[j];
                q[i] = q[j];
//               q[j] = q[temp];
                q[j] = temp;
            }
        }
//        while(i < j){
//            do i++;while(q[i] < x);
//            do j--;while(q[j] > x);
//            if(i < j) {
//                int temp = q[i];
//                q[i] = q[j];
//                q[j] = temp;
//            }
//        }
        qsort(l,j,q);
        qsort(j+1,r,q);
    }
}
